package n3176;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	static int dp[]=new int[350];
	
	static int a[]=new int[350];
	
	
	static int N;
	
	static void solve(int i)
	{
		//for(int i=0;i<N;i++)dp[i]=0;
		//for(int i=1;i<=N;i++)
		//{
			for(int j=i;j>=0;j--)
			{
				if(j==0){
					dp[j]=dp[j]+a[j];
				}else if(j==i)
				{
					dp[j]=dp[j-1]+a[j];
				}else{
					dp[j]=Math.max(dp[j-1], dp[j])+a[j];
				}
			}
		//}
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		BufferedReader 	bf=new BufferedReader(new InputStreamReader(System.in));
		N=Integer.parseInt(bf.readLine());
		for(int i=0;i<N;i++)
		{
			StringTokenizer st=new StringTokenizer(bf.readLine());
			for(int j=0;j<=i;j++)
			{
				a[j]=Integer.parseInt(st.nextToken());
			}
			solve(i);
		}
		int max=dp[0];
		for(int i=1;i<N;i++)
		{
			if(max<dp[i])max=dp[i];
		}
		System.out.println(max);
	}
}
